package com.inews.business.service;

import java.io.InputStream;
import java.util.Map;

import org.springframework.data.domain.Pageable;

import com.inews.base.security.vo.BaseUserVo;
import com.inews.base.vo.ExtData;
import com.inews.business.entity.TblTeacher;
import com.inews.business.vo.TeacherVo;

public interface ITeacherService {
	/**
	 * 分页查询退休人员信息.
	 *
	 * @param filterParams the filter params
	 * @param page the page
	 * @return the ext data
	 */
	public ExtData<TeacherVo> findTeacherPage(Map<String, Object> filterParams, Pageable page);
	
	
	/**
	 * 保存退休人员信息.
	 *
	 * @param vo the vo
	 * @param user the user
	 * @return the ext data
	 */
	public ExtData<TeacherVo> saveTeacher(TeacherVo vo, BaseUserVo user);

	
	
	/**
	 * 更新退休人员信息.
	 *
	 * @param vo the vo
	 * @param user the user
	 * @return the ext data
	 */
	public ExtData<TeacherVo> updateTeacher(TeacherVo vo, BaseUserVo user);
	
	
	/**
	 * 删除退休人员信息.
	 *
	 * @param vo the vo
	 * @param user the user
	 * @return the ext data
	 */
	public ExtData<TeacherVo> deleteTeacher(TeacherVo vo, BaseUserVo user);

	/**
	 * 导出教师信息
	 *
	 * @param vo the vo
	 * @param user the user
	 * @return the ext data
	 */
	ExtData<TeacherVo> exportExcel(Map<String, Object> filterParams);

	/**
	 * 导入excel.
	 *
	 * @param filterParams the filter params
	 * @param page the page
	 * @return the ext data
	 */
	ExtData<String> importExcel(InputStream is, BaseUserVo user);
	
	
	/**
	 * 设置教师信息.
	 *
	 * @param <T> the generic type
	 * @param t the t
	 * @param teacher the teacher
	 * @return the t
	 */
	public <T> T setTeacherInfo(T t, String staffId);
}
